/*
 * OPIAM Suite
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */

package opiam.admin.faare.unittests.javabeans;

import opiam.admin.faare.persistence.javabeans.JBUser;

import java.io.Serializable;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;


/**
 * Mapping class for the person object.<br>
 * The definition of the object is given in the faare_mapping.xml file.
 * This file defines the mapping between the person object and the corresponding LDAP entries.
 *
 */
public class PersonTest extends JBUser implements Serializable
{
    /** ObjectClasses list. */
    private List objectClass = new ArrayList();

    /** Title. */
    private String titre;

    /** Name and givenName. */
    private String nomPrenom;

    /** Name. */
    private String nom;

    /** User identifier. */
    private String id;

    /** GivenName. */
    private String prenom;

    /** Password. */
    private String password;

    /** Set of units. */
    private Collection ou;

    /** Set of managers. */
    private Collection manager;

    /** Set of secretaries. */
    private Collection secretary;

    /** Photo. */
    private Collection photo;

    /** Set of email. */
    private Collection mail;

    /** Locality attribute. */
    private String lieu;

    /** Room Number. */
    private int numPiece;

    /**
     * Creates a new PersonTest object.
     */
    public PersonTest()
    {
    }

    /**
     * Gets the set of Units.
     *
     * @return The collection.
     */
    public Collection getOu()
    {
        return ou;
    }

    /**
     * Initializes the set of units.
     *
     * @param anou  The collection to set.
     */
    public void setOu(Collection anou)
    {
        this.ou = anou;
    }

    /**
     * Gets the name.
     *
     * @return The name.
     */
    public String getNom()
    {
        return nom;
    }

    /**
     * Sets the name.
     *
     * @param anom  The name to set.
     */
    public void setNom(String anom)
    {
        this.nom = anom;
    }

    /**
     * Gets the title.
     *
     * @return The title.
     */
    public String getTitre()
    {
        return titre;
    }

    /**
     * Sets the title.
     *
     * @param title  The title to set.
     */
    public void setTitre(String title)
    {
        this.titre = title;
    }

    /**
     * Gets the name and the givenName.
     *
     * @return The concatenation of the name and the givenName.
     */
    public String getNomPrenom()
    {
        return nomPrenom;
    }

    /**
     * Sets the name and the givenName.
     *
     * @param anomPrenom  The name and the givenName to set.
     */
    public void setNomPrenom(String anomPrenom)
    {
        this.nomPrenom = anomPrenom;
    }

    /**
     * Gets the set of objectclasses.
     *
     * @return The objectClasses list.
     */
    public List getObjectClass()
    {
        return objectClass;
    }

    /**
     * Initializes the set of objectclasses.
     *
     * @param objectClasses The objectClass list to set.
     */
    public void setObjectClass(List objectClasses)
    {
        this.objectClass = objectClasses;
    }

    /**
     * Gets the password.
     *
     * @return The password.
     */
    public String getPassword()
    {
        return password;
    }

    /**
     * Sets the password.
     *
     * @param apassword The password to set.
     */
    public void setPassword(String apassword)
    {
        this.password = apassword;
    }

    /**
     * Gets the givenName.
     *
     * @return The givenName.
     */
    public String getPrenom()
    {
        return prenom;
    }

    /**
     * Sets the givenName.
     *
     * @param aprenom  The givenName to set.
     */
    public void setPrenom(String aprenom)
    {
        this.prenom = aprenom;
    }

    /**
     * Gets the user identifier.
     *
     * @return The identifier.
     */
    public String getId()
    {
        return id;
    }

    /**
     * Sets the user identifier.
     *
     * @param anid  The identifier to set.
     */
    public void setId(String anid)
    {
        this.id = anid;
    }

    /**
     * Gets the set of managers.
     *
     * @return The Collection.
     */
    public Collection getManager()
    {
        return manager;
    }

    /**
     * Initializes the set of managers.
     *
     * @param managers  The managers to set.
     */
    public void setManager(Collection managers)
    {
        this.manager = managers;
    }

    /**
     * Gets the set of secretaries.
     *
     * @return The Collection.
     */
    public Collection getSecretary()
    {
        return secretary;
    }

    /**
     * Initializes the set of secretaries.
     *
     * @param secretaries  The secretaries to set.
     */
    public void setSecretary(Collection secretaries)
    {
        this.secretary = secretaries;
    }

    /**
     * Gets the set of mails.
     *
     * @return The Collection.
     */
    public Collection getMail()
    {
        return mail;
    }

    /**
     * Initializes the set of mails.
     *
     * @param amail  The mails to set.
     */
    public void setMail(Collection amail)
    {
        this.mail = amail;
    }

    /**
     * Gets the photo.
     *
     * @return The photo as a bytes collection.
     */
    public Collection getPhoto()
    {
        return photo;
    }

    /**
     * Sets the photo.
     *
     * @param aphoto The photo to set
     */
    public void setPhoto(Collection aphoto)
    {
        this.photo = aphoto;
    }

    /**
     * Gets the locality.
     *
     * @return The locality.
     */
    public String getLieu()
    {
        return lieu;
    }

    /**
     * Sets the locality.
     *
     * @param alieu  The locality to set.
     */
    public void setLieu(String alieu)
    {
        this.lieu = alieu;
    }

    /**
     * Gets the room number.
     *
     * @return The number.
     */
    public int getNumPiece()
    {
        return numPiece;
    }

    /**
     * Sets the room number.
     *
     * @param np  The room number to set.
     */
    public void setNumPiece(int np)
    {
        this.numPiece = np;
    }

    /**
     * Gets first mail value, used for MailenderTrigger.
     * @return The mail value.
     */
    public String getFirstMail()
    {
        if (mail == null)
        {
            return null;
        }
        else
        {
            return (String) mail.iterator().next();
        }
    }
}
